package com.yxw.live_vod_boot.service;


import com.yxw.live_vod_boot.dto.UpdatePwdDTO;
import com.yxw.live_vod_boot.dto.UserLoginDTO;
import com.yxw.live_vod_boot.dto.UserPhoneLoginDTO;
import com.yxw.live_vod_boot.dto.UserSendCodeDTO;
import com.yxw.live_vod_boot.vo.LoginUserVo;
import com.yxw.yxnet_cd_center.common.dto.BaseDTO;
import com.yxw.yxnet_cd_center.common.utils.BaseResult;

import javax.servlet.http.HttpServletRequest;

/**
 *  直播平台登录注册管理
 * @author liuxin
 * @date 2023.11.29
 */
public interface LoginService {

    /**
     * 外部接口登录授权
     * @param token
     * @return
     */
    BaseResult authLogin(String token);

    /**
     * 登出
     * @param baseDTO
     */
    void logout(BaseDTO baseDTO);

    /**
     * 账号密码登录
     * @param userLoginDTO
     * @return
     */
    LoginUserVo login(UserLoginDTO userLoginDTO) throws Exception;

    /**
     * 手机号短信验证码登录
     * @param userPhoneLoginDTO 参数封装
     * @return LoginUserVo
     */
    LoginUserVo phone(UserPhoneLoginDTO userPhoneLoginDTO);

    /**
     * 手机号验证码获取
     * @param userSendCodeDTO
     */
    String send(UserSendCodeDTO userSendCodeDTO);

    /**
     * 刷新token接口
     * @param request
     * @return
     */
    LoginUserVo refreshToken(HttpServletRequest request);

    /**
     * 密码找回验证码获取
     * @param userSendCodeDTO
     */
    String pwdSend(UserSendCodeDTO userSendCodeDTO);

    /**
     * 通过手机号修改密码
     * @param dto
     */
    void updatePwdByPhone(UpdatePwdDTO dto);
}
